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 4893533..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
